The use of virtualization is becoming widespread. Virtualization describes a software abstraction that separates a computer resource and its use from an underlying physical device. Generally, a virtual machine (VM) provides a software execution environment and may have a virtual processor, virtual system memory, virtual storage, and various virtual devices. Virtual machines have the ability to accomplish tasks independent of particular hardware implementations or configurations. System virtualization is implemented through some managing functionality, typically hypervisor technology. Hypervisors, also called virtual machine managers (VMMs), use a thin layer of code in software or firmware to achieve fine-grained, dynamic resource sharing. Because hypervisors provide the greatest level of flexibility in how virtual resources are defined and managed, they are generally the primary technology for system virtualization.
Virtual machines may be migrated between a source host computing platform (“the source host”) and a destination host computing platform (“the destination host”) connected over a network, which may be a local area network or a wide area network that may include the Internet. Migration can include a move from a source environment to a target environment where the source environment is separate and under different management and security control than the target environment. Whole-instance migration includes capturing an entire operating system (OS) with the software and data included in image form, transferring the system to a new environment and restarting the system. Whole-instance migration is often needed when a customer does not have sufficient documentation of its applications for easy re-install. In addition, whole-instance migration can capture changes made to the server after the initial server setup that were not properly documented.